Organizations are increasingly deploying applications on virtual machines (VMs) to improve Information Technology (IT) efficiency and application availability. A key benefit of adopting virtual machines is that they can be hosted on a smaller number of physical servers (VM servers). This results in higher server utilization but also means that there are fewer server resources available to perform backup and/or restore. The problem is compounded by the unabated growth in data and applications, which makes it ever more difficult to complete backup and/or restore within the available time window.
One approach to backup and restore in a VM environment is to handle each VM as though it is a physical machine. This typically means installing and running a backup agent in each VM. This approach is server resource intensive and becomes unwieldy from a management perspective as the number of virtual machines increases.
Another approach is to back up a VM at the storage level by making a copy of the storage containers that contain the VM. Identifying exactly the storage containers that contain the VM and getting them to be in a consistent state are, however, challenging.
Another approach is to back up at the VM level. Virtualization vendors such as VMware provide a set of application programming interface (API) for a backup application. One may use a VM API such as VMware's vStorage APIs for Data Protection (VADP) to pull the data out of the virtual infrastructure and onto a backup system. This typically requires routing the data through a proxy server and consumes precious IT resources.
On incremental backup, a backup software may walk the file system and find which of the files that has been changed. However, walking the file system is slow and resource intensive. Another conventional method of incremental backup uses a changed block tracking (CBT) feature provided by a virtual machine monitor or manager to keep track of data blocks changed since last backup. The CBT feature, however, imposes an overhead on the operation of the VM, and may no track changes across unexpected system shutdowns. Furthermore, not all virtualization vendors provide the feature of CBT, which limit the effective usage of this approach.